<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        let person = {
            name:"lzt",
            hobby:"code"
        }

        Object.defineProperty(person,'age',{
            value:18,
            enumerable:true,//添加这个就可以遍历了
            writable:true,//添加这个就可以修改了
            configurable:true//添加这个就可以通过delete person.age删除了
        })
        //通过上面方法添加的变量默认是不参与遍历的，不能修改的，不能删除的

        Object.defineProperty(person,'day',{
            get:function(){
                return "今天"//读取的时候调用该方法，进行数据代理
            },
            set:function(){}//修改，使用这种形式最好是数据代理，要不然直接用上面的就行了
        })
        console.log(person)
        console.log(Object.keys(person))//用于遍历
    </script>
</body>
</html>